package com.znsd.zl.app.reservation.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.znsd.zl.app.reservation.entity.ReservationEntity;
import com.znsd.zl.app.reservation.vo.req.ReservationEntityVO;
import com.znsd.zl.utils.PageUtils;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName IReservationDao
 * @Description 描述
 * @author jaypdd
 * @email jaypdd@163.com
 * @date 2020-08-21 21:13:34
 * @Version v1.0
 */
@Mapper
public interface IReservationDao extends BaseMapper<ReservationEntity> {

    /**
     * 分页条件查询
     * @param map：查询条件对象
     * @param page：开始页
     * @param limit：每页数据条数
     * @return
     */
    List<ReservationEntityVO> queryPage(@Param("map") Map map, @Param("page") Integer page, @Param("limit") Integer limit);

    /**
     * 获取分页的总数
     * @param map：分页条件查询对象
     * @return Integer ： 总数量
     */
    Integer queryPageCount(@Param("map") Map map);

    /**
     * 查询未处理数据个数
     * @param userId ： 要获取那个员工（员工ID）未处理个数
     * @return Integer ： 未处理个数
     */
    Integer getPending(@Param("userId") String userId);

    /**
     * 选择性修改
     * @param map ：要修改的属性对象
     * @param id：修改的数据ID
     * @return 1成功，0失败
     */
    Integer selectUpdate(@Param("map") Map map,@Param("id") Object id);

    /**
     * 判断当前用户是否预约当前的房屋
     * @param userId：当前的用户ID
     * @param houseId：用于预约的房屋ID
     * @return ReservationEntity：查询的预约实体类对象
     */
    ReservationEntity isReservation(@Param("userId") Integer userId,@Param("houseId") Integer houseId);
}
